Foundations of Computer Graphics - Lecture 1 [Part 1]
- المحاضرة دي اطول محاضرة في المنهج والدكتور مقسمها خمس اجزاء, فيها أهم مفاهيم الـ
Computer Graphics. - هنتكلم عن
2D Graphics، الفرق بينRasterوVector، الـPixels، الـCoordinate Systems، مشكلةAliasing، وكمانColor ModelsوColor Depthودي حاجات كلها هنتطرق ليها بعدين في محاضرات منفصله بتفصيل اكتر.
1) What is Computer Graphics?
Computer graphics refers to images created or manipulated by computers, including the hardware and software systems used.
- الـ Computer graphics هي مجال بيهتم بإنشاء ومعالجة الصور والنماذج باستخدام الكمبيوتر، سواء كانت ثنائية أو ثلاثية الأبعاد أو متحركة.
- وبيستخدم في مجالات كتيرة منهنا الأفلام والألعاب وتوليد الصور وعرضها على الشاشات.
2) Raster Graphics and Vector Graphics
-
الصور الرقمية في الـ Computer Graphics ليها طريقتين أساسيين للتكوين:
-
Raster Graphics:
الصورة بتتكون من عدد كبير جدا من الـ pixels (مربعات صغيرة ملونة).
كل ما عدد الـ pixels يزيد الصورة تبقى أوضح.
النوع ده مناسب للصور الحقيقية والفوتوشوب، لكن لو كبرت الصورة جامد الجودة بتقل وتبقى مبكسلة. -
Vector Graphics:
الصورة بتتعمل باستخدام خطوط وأشكال ومعادلات رياضية بدل الـ pixels.
عشان كده تقدر تكبرها أو تصغرها من غير ما الجودة تبوظ.
النوع ده مناسب للوجوهات والأيقونات والرسومات الهندسية.
3) What is 2D Graphics?
2D Computer Graphics refers to the creation, manipulation, and rendering of images in a two-dimensional space.
- ا
2D Graphicsبتتعامل مع صور مسطحة، بعكس3D Graphicsاللي فيها عمقz-axis. - المساحة هنا متعرفة بمحورين:
x-axis: أفقيhorizontaly-axis: رأسيvertical
4) Key Techniques in 2D Computer Graphics
- دي أهم التقنيات اللي بتظهر في شغل
2D Graphics.
A) Rendering
Rendering is the process of generating a 2D image from models, data, or mathematical descriptions.
- الـ
Renderingهو عملية تحويل المعادلات أو الداتا أو الاكواد لصورة 2D تتعرض على الشاشة ونقدر نشوفها.
1. Rasterization
Converts vector-based shapes into a grid of pixels (bitmap)
- الـ
Rasterizationبيحول الاشكال الي معموله بالـVectorلشبكةPixelsأوBitmap. - بعد التحويل، النظام بيحدد لون كل
Pixelحسب الشكل الأصلي, يعني بيتحول من شكل رياضي لصورة مبنية من مربعات صغيرة.
2. Anti-aliasing
Reduces visual artifacts such as jagged edges by blending pixel colors along the edges of shapes
- الـ
Anti-aliasing(او تنعيم الحواف) وظيفته إنه يشيل الحواف المشرشرة أو اللي طالعة شبه السلالم (jagged edges) على أطراف الرسومات والمجسمات عشان تبان طبيعية وواقعية. - يعني كأنه بيعمل "صنفرة" للبيكسلات ويسيح ألوانها في بعضها عشان يخلي حواف الحاجة ناعمة ومريحة للعين بدل ما تبقى مبكسلة.
- هنشرحه بتفصيل اكتر بعدين
3. Dithering
Uses patterns of pixels to simulate colors and gradients that may not be available in a limited color palette.
- الـ
Ditheringهو "خدعة بصرية" بيعملها الكمبيوتر عن طريق إنه بيستخدم انماط معينه من الـPixelsعشان يعوض نقص الألوان المتاحة في الصورة. - يعني من الاخر بيرص بيكسلات بألوان مختلفة جنب بعضها بنمط معين عشان يحاكي لون جديد.

B) Transformations
Transformations modify the position, size, orientation, or shape of objects in a 2D space.
- الـ
Transformationsبيغير مكان أو حجم أو اتجاه أو شكل العنصر في الـ 2D. - بتتمثل باستخدام
transformation matrices.
أنواع Transformations
| النوع | التعريف | بيعمل إيه؟ |
|---|---|---|
| Translation | Moves an object along the x and y axes |
بينقل العنصر على محوري x و y من غير ما يغير شكله أو حجمه |
| Scaling | Enlarges or shrinks an object relative to a fixed reference point, often the origin. |
بيكبر أو يصغر العنصر بالنسبة للـ origin |
| Rotation | Rotates an object around a specified pivot point |
بيلف العنصر حوالين pivot point بزاوية |
| Shearing / Skewing | shifting one axis relative to the other |
بيميل "إمالة" للشكل، كأنك ثبت قاعدة مستطيل من النقطتين الي تحت وحركت النقطتين اللي فوق لليمين أو الشمال، فبيتحول شكله من مربع لمتوازي أضلاع. |
| Reflection | Flips an object across a specified axis |
بيقلب العنصر حوالين محور زي x-axis أو y-axis |
C) Clipping
Clipping restricts rendering to a defined region such as a viewport or window.
- الـ
Clippingيعني بنحدد منطقة ونرسم بس الجزء اللي جوه المنطقة دي. - أي جزء خارج الـ
viewportأو الـ المنطقة الي حددناها بيتقص ومبيتعرضش.

Types of Clipping
| النوع | التعريف | الفكرة |
|---|---|---|
| Point Clipping | Determines whether a point is inside a clipping region. |
بيقرر النقطة دي جوه المنطقه الي حددناها فتترسم، ولا براها فتتلغي. |
| Line Clipping | Trims lines that extend outside a defined area. |
بيقص الخطوط اللي طالعة بره المنطقة الي حددناها |
| Polygon Clipping | Adjusts complex shapes to fit within a boundary. |
بيطبق نفس الفكرة بس على الأشكال الكبيرة والمقفولة (زي المثلثات والمربعات)، بيقص أي جزء منها طالع بره المنطقه الي حددناها. |
- من الاخر الـ Point Clipping بتتعامل مع النقط (
points) والـ Line Clipping بيتعامل مع الخطوط (lines) اما الـ Polygon Clipping بيتعامل مع الـpolygonsالي هيا الاشكال المعقده
Common Clipping Algorithms
| ا Algorithm | استخدامه |
|---|---|
| Cohen-Sutherland Algorithm | بيحدد هل الخط جوه ولا بره ولا جزء من المنطقه الي حددناها. |
| Liang-Barsky Algorithm | بيعمل نفس الحاجة بس باستخدام parametric equations وبيبقي اسرع واذكي |
| Sutherland-Hodgman Algorithm | بيستخدم في الـ polygon clipping , بيقصقص أطراف الشكل من الجوانب الأربعة عشان يخليه قد الشاشة بالظبط. |
- ا Cohen بتتعامل مع الخطوط العادية , اما Liang-Barsky بتستخدم
parametric equations, و Sutherland بقي بتتعامل مع الـpolygonsالي هيا الاشكال المعقده
D) Compositing
Compositing combines multiple images, layers, or graphical elements to produce a final image.
- الـ
Compositingيعني تركيب أكتر من صورة أو طبقة فوق بعض عشان نطلع صورة نهائية. - بيستخدم في:
- Image editing (لو بتستخدم فوتوشوب هتبقي عارف الكلام ده )
- Special effects
- UI rendering
Compositing Techniques
| ا Technique | الفكرة |
|---|---|
| Alpha Blending | بيستخدم قيم الشفافية alpha values عشان يدمج الطبقات بسلاسة |
| Masking | بيحدد مناطق تظهر أو تختفي باستخدام mask |
| Layering | الصوره بتبقي عباره عن layers او طبقات مستقلة، وكل طبقة ممكن تتعدل لوحدها |
- الـ Alpha Blending بيستخدم الـ transparency , الـ Masking بيحدد حته تظهر (revealed) وحته لا (hidden), الـ Layering من اسمها بتبقي separate layers
E) Shading
Shading simulates lighting effects in 2D graphics to create the illusion of depth, texture, and material properties.
- الـ
Shadingبيحاول يخلي عنصر 2D يبان فيه إحساس بالإضاءة والعمق والخامة. - يعني مش بيحول الصورة لـ 3D، بس بيخليك تحس انها 3D.
Shading Techniques
| ا Technique | التعريف | الفكرة |
|---|---|---|
| Flat Shading | single color or brightness value to an entire shape. |
بيدي الشكل كله لون أو brightness واحد |
| Gouraud Shading | Interpolates colors between vertices to produce smooth gradients. |
بيسيح الالوان عشان يطلع gradients ناعمة |
| Phong Shading (2D Adaptation) | Performs per-pixel lighting calculations to enhance realism in 2D scenes. |
بيحسب الإضاءة لكل نقطة (pixel) لوحدها على الشاشة. |
| Shadow Mapping | Creates shadows by projecting objects onto a shadow buffer. |
بيعمل shadows عن طريق انه يرمي الظل بتاع المجسم على الأرض أو على الحاجات اللي وراه عشان تحس إن المشهد حقيقي ومجسم. |
- الـ Flat بيعمل شكل وبدائي وبيبقي لون واحد (single color)، الـ Gouraud بيعمل تدرج في الالوان (gradient)، الـ Phong بيبقي واقعي جداً (realistic lighting.)، والـ Shadow من اسمه بيعمل اسقاط للظلال (shadow buffer)
F) Text Rendering
Text rendering focuses on displaying high-quality text that is visually clear and readable.
- الـ
Text Renderingمسؤول عن عرض النصوص بشكل واضح وحاد وقابل للقراءة. - بيتعامل مع:
- Fonts
- Spacing
- Visual clarity
- Readability on screens and printed media
5) Text Rendering Techniques
A) Vector Fonts
Vector fonts represent characters using mathematical curves, mainly Bezier curves.
- الـ
Vector Fontsبتمثل الحروف بمنحنيات ومعادلات رياضية (زي الـ vector images بالظبط). - ميزتها الأساسية إنها بتتكبر وتصغر من غير ما تفقد الجودة(برده زي الـ vector images).
Common Examples of Vector Fonts
| ا Format | الوصف |
|---|---|
| TrueType (TTF) | ده Format مشهور وبيوفر دقة وجودة ثابتة على الشاشة والطباعة |
| OpenType (OTF) | نسخة مطورة من TrueType، وبتدعم character sets أكتر و advanced typography |
Advantages of Vector Fonts:
- Scalable.
- Resolution-independent.
Disadvantages of Vector Fonts:
- محتاجة resources أكتر في الـ rendering.
B) Bitmap Fonts
Bitmap fonts store characters as fixed-size pixel grids.
- الـ
Bitmap Fontsبتخزن كل حرف كشبكة pixels جاهزة بحجم معين (زي الـ raster images).
Advantages
- Fast rendering.
- Efficient.
Disadvantages
- Not scalable.
- لما تكبرها بتبكسل.
C) Kerning
Kerning adjusts spacing between specific pairs of characters to improve readability and visual balance.
- الـ
Kerningبيتحكم في المسافة الي بين الحروف. - مثلا (
AVATAR) -> (A V A T A R)
D) Ligatures
Ligatures replace certain character pairs with a single stylized glyph.
- ا
Ligaturesبيتحكم في طريقة ربط الحروف مع بعضها (زي الانجليزي المشبك كده). - الهدف إنها تحسن الشكل الجمالي
aestheticsوالقراءةreadability.
E) Anti-aliasing for Text
- زي الصور, لما النص يتعرض على شاشة الحواف ممكن تبان متكسرة عشان الشاشة مبنية من pixels.
- ا
Anti-aliasingبينعم حواف النص عن طريق مزج pixels الحواف مع الألوان اللي حواليها.
F) Subpixel Rendering
Subpixel rendering improves text clarity by using the red, green, and blue subpixels of LCD displays.
- الـ
Subpixel Renderingبتحسن حدة النصوص عن طريق انها بتستغل إن كل pixel في شاشة LCD غالبًا متكوّن من subpixels:- Red
- Green
- Blue
6) ملخص المحاضرة
اتكلمنا في المحاضره دي عن مقدمة في الـ Computer Graphics وعرفنا إنها مجال بيهتم بإنشاء ومعالجة الصور باستخدام الكمبيوتر.
وعرفنا الفرق بين Raster Graphics (صورة من Pixels) و Vector Graphics (صورة من معادلات رياضية)، وإن 2D Graphics بتشتغل على محورين x و y.
بعد كده عرفنا أهم تقنيات الـ 2D Graphics:
- ا Rendering وتحويل الداتا لصورة (وفيه Rasterization, Anti-aliasing, Dithering)
- ا Transformations اللي بتغير موقع/حجم/اتجاه العناصر (Translation, Scaling, Rotation, Shearing, Reflection)
- ا Clipping وقص الأجزاء الخارجة عن المنطقة المحددة (Point, Line, Polygon ومعاهم Algorithms زي Cohen-Sutherland و Liang-Barsky و Sutherland-Hodgman)
- ا Compositing وتركيب الطبقات (Alpha Blending, Masking, Layering)
- ا Shading اللي بيعمل إحساس بالعمق والإضاءة (Flat, Gouraud, Phong, Shadow Mapping)
واخر حاجه اتكلمنا عن Text Rendering وعرفنا فيه Vector Fonts (TTF, OTF) و Bitmap Fonts و Kerning و Ligatures و Anti-aliasing للنصوص و Subpixel Rendering.